package com.laiketui.plugin.common.interfaces.plugin.member;

import com.laiketui.plugin.common.domain.base.User;
import com.laiketui.plugin.common.domain.base.order.OrderDataModel;
import com.laiketui.plugin.common.domain.exception.LaiKeAPIException;
import com.laiketui.plugin.common.domain.vo.member.BuyMemberVo;
import com.laiketui.plugin.common.domain.vo.member.MemberOrderVo;

import java.math.BigDecimal;

/**
 * @Author: sunH_
 * @Date: Create in 19:08 2022/7/5
 */
public interface PubliceMemberService {
    /**
     * 充会员送积分
     * @param user
     * @param memberType
     * @param storeId
     * @throws com.laiketui.core.exception.LaiKeAPIException
     */
    void sendPoints(User user, Integer memberType, Integer storeId, OrderDataModel orderDataModel) throws com.laiketui.core.exception.LaiKeAPIException;

    /**
     * 会员生日特权奖励
     * @param user
     * @param storeId
     * @param price
     * @throws com.laiketui.core.exception.LaiKeAPIException
     */
    void doublePoints(User user, Integer storeId, BigDecimal price, String sNo) throws com.laiketui.core.exception.LaiKeAPIException;

    /**
     * 生成orderData
     * @param user
     * @param vo
     * @return
     * @throws LaiKeAPIException
     */
    MemberOrderVo getOrderData(User user, BuyMemberVo vo) throws LaiKeAPIException;

}
